// 知识点：当我们想指定函数的返回类型时，使用显式模版实参是非常有效的，但是可能会给用户带来额外的负担，而且可能还会带来错误，比如返回值若是序列中的一个元素（接收的参数是序列的迭代器），我们可以使用尾置返回类型，decltype(something)来获取该something的类型，something的类型是函数的返回值类型。使用方式是在参数列表后加箭头+decltype()，而函数类型我们可以使用auto代替

// 结合以上知识点，由于需要decltype推断传入表达式的类型，所以该实参类型需要支持迭代器+的操作(该操作是右结合律，首先要进行迭代器加的操作，再解引用)

// 返回类型取决于解引用之后的类型